This invention relates to communication systems and, more particularly, relates to a method for using a single communication channel to simultaneously transmit control data to multiple controlled devices. In particular, the controlled devices may be mechanical characters that use the control data to produce synthesized speech and coordinated movement, which causes the controlled devices to behave as characters in a corresponding video program.
Controlled-device systems using mechanical characters that move and talk as characters in a corresponding video program have been developed for entertainment and educational purposes. For example, one such system intended for use by for small children includes mechanical xe2x80x9cBARNEY,xe2x80x9d xe2x80x9cARTHUR,xe2x80x9d and xe2x80x9cDWxe2x80x9d toy characters that move and talk as characters in a live or taped broadcast of the BARNEY television program. In addition, other mechanical characters representing other characters for this and other video programs may be released in the future.
In this type of controlled-device system, having a variety of different characters is desirable because it gives different children different characters to interact with. For example, one child may interact with the xe2x80x9cBARNEYxe2x80x9d toy, while another interacts with the xe2x80x9cARTHURxe2x80x9d toy, while another interacts with the xe2x80x9cDWxe2x80x9d toy, etc. It is also advantageous for a variety of different toys to be available so that children have a selection of toys to choose from and collect. Moreover, in a progressive learning system, it is advantageous to have a series of toys associated with different skills so that a child can progress through the skills learned by interacting with the different toys.
Once multiple characters are deployed, however, keeping them all moving and talking in approximate synchronism with the corresponding video program can be difficult. More specifically, transmitting a sufficient amount of control data in real-time with the video program becomes increasingly difficult as the number of characters and the complexity of the program content increases. This can become particularly difficult when multiple characters speak and/or move simultaneously. For example, in a scene depicting a orchestra, one character may move as a conductor directing the orchestra while several other characters simultaneously sing different parts. In general, video programs often contain scenes in which several characters speak and/or move simultaneously or in rapid succession.
Due to spectrum scarcity and cost considerations, prior controlled-device systems use a single wireless communication channel to transmit control data to multiple controlled devices. The control schemes for these systems typically rely on addressing techniques to direct control data to specified characters. Although these systems work well, they limit the total amount of control data that can be transmitted at any one time to the bandwidth of the communication channel. Of course, the underlying programming of typical video content material is not scripted with bandwidth limitations in mind for controlledcharacter entertainment and educational systems. As a result, the bandwidth of the communication channel often turns out to be insufficient to carry the desired amount of control data.
One solution to this problem is to increase the number of communication channels used to transmit control data to the controlled devices. This is an expensive and, for existing systems, an impractical approach. Another option is to xe2x80x9cdata starvexe2x80x9d controlled devices that need data when the single communication channel is transmitting control data to another device. This solution is somewhat lacking in performance, however, because certain controlled devices may perform well while other perform poorly or sporadically. As a result, the children playing with the poorly performing controlled devices may become frustrated or bored.
There is, therefore, a need for an improved system for simultaneously controlling multiple controlled devices using a single communication channel. There is a further need for controlled devices that respond appropriately to the control data transmitted on the single communication channel.
The present invention meets the needs described above by providing a method for combining control data for multiple controlled devices into a unified control data signal that may be transmitted on a single communication channel. Although the control data signal may be stored in virtually any type of computer-readable medium, it is typically encoded on video tape in the horizontal overscan portion of the video signal in approximate synchronism the video program. This allows the control data signal to be read from video tape and transmitted to the controlled devices in approximate synchronism with the display of the video program on a display device. As a result, the controlled devices may be made to move and speak as characters in the corresponding video program. Alternatively, for live broadcasts the unified control data signal may be constructed in real time and encoded into horizontal overscan portion of the video signal as the signal is created and broadcast in a live transmission.
The invention may be implemented by a computer system that combines the control data for multiple devices into the unified control data signal. Combining the control data into the unified control data signal involves the resolution of bandwidth conflicts that occur when attempting to drive multiple controlled devices simultaneously. Specifically, the invention employs five techniques that may be applied individually or in combination to resolve bandwidth conflicts: (1) regenerating the control data signal to increase the applied compression, (2) interleaving control data frames using repeat frames, (3) reorganizing the control data by moving a conflicting frame into an available frame, (4) pre-stuffing the control data buffers for one or more controlled devices, and (5) data starving one or more controlled devices in accordance with predefined criteria. For each segment of the control data signal, one or more of these techniques may be applied individually or consecutively until all bandwidth conflicts are resolved. In addition, steps (1) and (2) may be combined into a single technique, for example by increasing the compression threshold on one frame so that it becomes identical (or nearly identical) to an adjacent frame, and then combining those two adjacent frames into a single frame designated as a repeat frame.
In addition, the producer of the controlled-device content material may select among these techniques to allocate the available bandwidth in a desired manner. That is, certain bandwidth resolution techniques have associated adverse effects or xe2x80x9cperformance penaltiesxe2x80x9d for the affected controlled devices. For example, increasing the compression of control data used to synthesize speech degrades the accuracy of the audio response. Similarly, interleaving speech frames using repeat frames or by reorganizing the position of speech frames in the control data signal can cause slight warbling in the audio response. And deleting control data has the obvious affect of failing to provide the intended data to a particular controlled device. The orderly bandwidth resolution techniques of the present invention give the producer of the controlled-device content material the ability to resolve bandwidth conflicts in an strategic manner, typically by taking into account how the various controlled devices will be affected by the resulting performance penalties.
The invention also provides controlled devices that are configured to respond appropriately to the unified control data signal described above. That is, the controlled devices identify repeat frames and store these frames twice in their control data buffers. This gives the speech synthesizer duplicate speech data to play in response to the repeat frames. If the controlled device""s data buffer is full, however, the repeat frames is simply ignored, which gives the controlled device an opportunity to xe2x80x9ccatch upxe2x80x9d when its performance lags behind its control data stream.
Although gradual terminations of the audio response played by a controlled device can be built into the control data signal for planned terminations of audio control data, there is no way to pre-configure the unified control data signal for unexpected terminations of audio control data, such as those occurring when the control data transmitter is shut off suddenly. This sort of abrupt termination of audio control data can cause the speaker in the controlled device to emit a loud xe2x80x9cpop.xe2x80x9d To solve this problem, the controlled devices respond gracefully to the termination of audio data by fading out gradually, rather than terminating abruptly.
Generally described, the invention provides a control data signal and a computer-implemented method for creating the signal. This control data signal is typically created by a bandwidth conflict resolution (BCR) component running on a computer system. The BCR component receives first and second segments of control data for transmission to first and second controlled device, respectively, during a time interval. The BCR component combines the first and second segments of control data into a unified control data signal that is transmittable on a single communication channel during the time interval. The BCR component then outputs the control data signal for transmission to the first and second controlled devices. For example, the BCR component may store the control data signal on a video tape in approximate synchronism with a video program for subsequent playback. Alternatively, the BCR component may encode the control data signal into a live video feed for immediate broadcast.
The BCR component combines the first and second segments of control data into the unified control data signal by identifying bandwidth conflicts in the control data signal. In response to the bandwidth conflicts, the BCR component implements one or more of the following techniques to resolve the bandwidth conflicts: (1) regenerating the control data signal by increasing at least one compression parameter used in creating the first and second segments of control data; (2) interleaving the control data signal by replacing two adjacent frames of the control data segment with a single frame designated as a repeat frame; (3) reorganizing the control data by moving a frame of control data segment into an unoccupied frame in the control data signal; (4) prestuffing the control data signal by moving a portion of the control data to frames in which the moved control data will accumulate for delayed performance in a buffer in one of the controlled devices; and (5) selecting one of the controlled device for data starving based on predefined selection criteria and deleting one or more frames of the control data for the selected controlled device. As noted previously, steps (1) and (2) may be combined into a single technique by increasing the compression threshold on one frame so that it becomes identical (or nearly identical) to an adjacent frame, and then combining those two adjacent frames into a single frame designated as a repeat frame.
The invention also provides a controlled device configured for responding to control data to behave as a character in a corresponding video program. The controlled device responds to repeat frames in the control data signal by receiving a frame of control data and determining whether its control data buffer is full. If the control data buffer is not full, the controlled device stores the frame of control data in the control data buffer and determines whether the frame of control data is designated as a repeat frame. If the frame is designated as a repeat frame, the controlled device determines whether the control data buffer is full after the control data has been stored in the control data buffer. If the control data buffer is not full after the control data has been stored in the control data buffer, the controlled device stores the frame of control data in the control data buffer a second time.
The controlled device is also configured to respond gracefully to control data shortages by checking a control data buffer for the presence of a current frame of control data for producing an audible response signal. If the control data buffer does not include the current frame of control data, the controlled device retrieves a previous frame of control data for producing an audible response signal and replays the previous frame of control data at a reduced volume. The controlled device then stores the previous frame of control data at the reduced volume in the control data buffer as the current frame of control data. This allows the audio response generated by the controlled device to fade out gradually when the control data terminates unexpectedly.
That the invention improves over the drawbacks of the prior art and how it accomplishes the advantages described above will become apparent from the following detailed description of the exemplary embodiments and the appended drawings and claims.